package com.yx.sp_mybatis.dao;

import com.yx.sp_mybatis.entity.User;
import com.yx.sp_mybatis.vo.UserQueryVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @author 姚天下
 * @version 1.0
 * @date 2021/8/30 13:48
 */
@Repository
public interface UserDao {

    //查所有
    List<User> findAll();
    //根据ID
    User findById(Long id);

    //简单分页
    List<User> findByPager1(Map<String,Object> params);

    Long count1();

    //mybatis 传递参数方式1  使用顺序传递参数  在mapper。xml取值时，使用#{0}，#{1}
    User findByUsernameAndPassword1(String username,String password);

    //mybatis 传递参数方式2  使用@Param 传递参数  在mapper。xml取值时，取的是@Param括号后面的（"username"）
    User findByUsernameAndPassword2(@Param("username") String username, @Param("password") String password);

    //mybatis 传递参数方式3  使用map传递参数）
    User findByUsernameAndPassword3(Map<String,Object> params);

    //mybatis 传递参数方式4  Java Bean传参法
    User findByUsernameAndPassword4(UserQueryVo vo);


    //插入数据（单条，不返回ID）
    void save1(User user);
    //插入数据（单条，返回ID）
    void save2(User user);



}
